package org.dromara.common.core.domain.model;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.constant.UserConstants;
import org.hibernate.validator.constraints.Length;

import java.io.Serial;
import java.io.Serializable;

/**
 * 用户登录对象
 *
 * @author Lion Li
 */

@Data
public class LoginBody implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 租户id
     */
    @NotBlank(message = "租户id不能为空")
    private String tenantId;


    /**
     角色id 角色 0用户  1采购员 2供应商 3司机 4仓库管理员 5质检员 6物流专员 7财务
     */
    @NotNull(message = "角色id不能为空")
    private Long roleId;

    /**
     * 用户名
     */
    @NotBlank(message = "{user.username.not.blank}")
    @Length(min = UserConstants.APP_USERNAME_MIN_LENGTH, max = UserConstants.APP_USERNAME_MAX_LENGTH, message = "{user.username.length.valid}")
    private String username;

    /**
     * 邀请码
     */
    private String inviteCode;

    /**
     * 用户密码
     */
    @NotBlank(message = "{user.password.not.blank}")
    private String password;


    /**
     * 授权类型
     */
//    @NotBlank(message = "{auth.grant.type.not.blank}")
    private String grantType;

    /**
     * 授权类型
     */
//    @NotBlank(message = "{auth.grant.type.not.blank}")
    private String clientId;


    /**
     * 验证码
     */
    private String code;

    /**
     * 唯一标识
     */
    private String uuid;

}
